package service;

import model.Role;
import model.User;

import java.util.List;

/**
 * @program: pdd
 * @description: 用户管理服务接口
 * @create: 2020-11-17 18:48
 **/
public interface UserService {

    /**
     * 通过用户名获取用户
     * @param username
     * @return
     */
    User getUserByUsername(String username);

    /**
     * 通过用户名获取角色
     * @param username
     * @return
     */
    List<Role> getRoles(String username);


    /**
     * 添加角色
     * @param role
     * @return
     */
    boolean addRole(Role role);

    /**
     * 为用户添加角色
     * @param roleid
     * @param userid
     * @return
     */
    boolean addRoleForUser(String roleid,String userid);

    /**
     * 删除角色
     * @param id
     * @return
     */
    boolean deleteRole(String id);


    /**
     * 添加用户
     * @param user
     * @return
     */
    boolean addUser(User user);

    /**
     * 通过id获取
     * @param id
     * @return
     */
    User getUserById(String id);

    /**
     * 通过手机获取
     * @param phone
     * @return
     */
    User getUserByPhone(String phone);

    /**
     * 通过邮件获取
     * @param emaill
     * @return
     */
    User getUserByEmail(String emaill);

    /**
     * 更新用户
     * @param user
     * @return
     */
    boolean updateUser(User user);


    /**
     * 修改密码
     * @param user
     * @return
     */
    boolean changePassword(User user) throws Exception;

    /**
     * 获取用户关注列表
     * @param userid
     * @return
     */
    List<User> getFollowsByUserid(String userid);

    /**
     * 关注商家
     * @param userid
     * @param sellerid
     * @return
     */
    boolean followedToSeller(String userid,String sellerid);
}
